// Parser2.h : Declaration of function prototypes and variables for Parser2.cpp
// Author: Heng Belson
//
#ifndef PARSER2_H
#define PARSER2_H

#include	"../SPA_Data_Types.h"

class Parser2 {

public:
	//enum STATUS			{ STATUS_Success, STATUS_Failure, STATUS_Not_Processed };

	/***************************************/
	// Constructor
	/***************************************************************************************************************************/
	Parser2();
	/***************************************************************************************************************************/

	STATUS parse(STRING readFromFile);

private:
	enum BRANCH_TYPE	{ BRANCH_Left, BRANCH_Right, BRANCH_Root };

	/******************************/
	// Main functions			   
	/***************************************************************************************************************************/
	STATUS	program();
	void	procedure();
	void	statementList(STRING stmtLst);
	void	statement(STRING stmt);
	void	expression(STRING expr, BRANCH_TYPE branchType, BOOLEAN isFactor);
	/***************************************************************************************************************************/
};
#endif